Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

Îåêßíçóå áðü ôï ìÝëïò epp1123. Τελευταία δημοσίευση από το μέλος epp1123 στις 17-07-2009, 18:06. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-07-2009, 13:27 52490

    Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    Έχω τον παρακάτω κώδικα:

    For Each Photo As FileInfo In Photos
                        
    writer.Write(String.Format(Environment.NewLine & "<a class=""highslide"" href=""{0}"" onclick=""return hs.expand(this, inPageOptions)"">", String.Format("CommonFiles/Shows/{0}/Photos/{1}", Me.GetShowID(), Photo)))

    writer.Write(String.Format(Environment.NewLine & "<img src=""{0}"" />" & Environment.NewLine & "</a>", String.Format("CommonFiles/Shows/{0}/Thumbs/{1}", Me.GetShowID(), Photo.Name)))

    Next

    Θέλω να πάρω όλα χρησιμοποιήσω κάθε Photo εκτός του πρώτου. Πως αποκλείω το πρώτο, ή επιλέγω όλα τα υπόλοιπα εκτός του πρώτου;
  •  15-07-2009, 14:47 52496 σε απάντηση της 52490

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    epp1123:

    Θέλω να πάρω όλα χρησιμοποιήσω κάθε Photo εκτός του πρώτου. Πως αποκλείω το πρώτο, ή επιλέγω όλα τα υπόλοιπα εκτός του πρώτου;

    Πως είσαι σίγουρος ότι είναι πάντα το πρώτο από το collection? Δεν υπάρχει κάποιο συγκεκριμένο κριτήριο να το αποκλείσεις εκτός από το order στο collection (Linq maybe)

    Τέλος πάντων αν θέλεις να μην πάρεις το πρώτο τότε μην χρησιμοποιείς το forEach και πήγαινε με το παλιό τρόπο ξεκινώντας την αρίθμηση από το 1 Π.χ.

     For index As Integer = 1 To table.Count - 1

    Response.Write(table(index).Name

     Next

     



    Manos
  •  15-07-2009, 14:59 52498 σε απάντηση της 52496

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    Linq ήθελα, και τελικά το έβγαλα. Απλά ήθελα ένα κριτήριο για να "κόψω" το πρώτο. Τελικά το έκανα έτσι

    Dim RestOfPhotos As IEnumerable(Of FileInfo) = From ph In Photos Where ph.Name IsNot Photos.First.Name Select ph

    και δούλεψε μια χαρά. 

    Τώρα με γέννησες άλλη απορία. Γιατί το πρώτο να μην είναι πάντα πρώτο;;; 
  •  15-07-2009, 15:06 52501 σε απάντηση της 52498

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    Μπράβο. Βάλε το LINQ στη ζωή σου. Big SmileBig SmileBig Smile

    Τώρα τι εννοώ. Αν  θέλεις να μην συμπεριλαβεις το τρίτο στοιχείο από την συλλογή σου τι θα κάνεις?? Είσαι σίγουρος ότι πάντα θα είναι το πρώτο??? Αν ναι πάω πάσοCool



    Manos
  •  15-07-2009, 15:14 52502 σε απάντηση της 52501

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    Μίσο λεπτό. Έχω ένα φάκελο όπου εκεί μέσα έχει φωτογραφίες. Κάθε φωτό έχει και ένα όνομα, άρα θα είναι οι φωτογραφίες ταξινομημένες ανά όνομα. Οπότε  η φωτό που ξεκινάει από "Α" πχ δεν θα είναι πάντα πρώτη και η φωτό που ξεκινά από "Β' δεν θα είναι πάντα δεύτερη; Μιλάω πάντα για μέσα στο Collection όχι στο φάκελο, γιατί μες το φάκελο ξέρω πως θα είναι σίγουρα ταξινομημένες κατά όνομα, εκτός αν η ταξινόμηση μέσα στο collection γίνεται ανάλογα με το πόσες μπύρες έχει πιει το framework και τα ταξινομεί κάθε φορά και διαφορετικά. Τώρα μου βγήκε μια χαρά, μου το "έκοψε' το πρώτο στοιχείο που δεν ήθελα. 

    Εδώ την ταξινόμηση μου την έκανε μέσα στο collection ανά όνομα φωτογραφίαw. Υπάρχει περίπτωση να το κάνει με άλλο τρόπο, πχ με μέγεθος της φωτό;
  •  16-07-2009, 08:43 52523 σε απάντηση της 52498

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    epp1123:
    Linq ήθελα, και τελικά το έβγαλα. Απλά ήθελα ένα κριτήριο για να "κόψω" το πρώτο. Τελικά το έκανα έτσι

    Dim RestOfPhotos As IEnumerable(Of FileInfo) = From ph In Photos Where ph.Name IsNot Photos.First.Name Select ph

    και δούλεψε μια χαρά. 

    Τώρα με γέννησες άλλη απορία. Γιατί το πρώτο να μην είναι πάντα πρώτο;;; 


    Για να είσαι πάντα σίγουρος βάλε και ένα Order by.

    Dim RestOfPhotos As IEnumerable(Of FileInfo) = From ph In Photos Where ph.Name IsNot Photos.First.Name orderby ph.Name Select ph



    Manos
  •  17-07-2009, 18:04 52584 σε απάντηση της 52523

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    Να γίνω λίγο Σπιρτούλης ... ;

    Μην κάνεις το where, πάρτα όλα με το orderby που θές, και στο IEnumerable<FileInfo> που επιστρέφει, κάλεσε απλώς τη Skip(int count) με παράμετρο το 1. Έτσι θα αποφύγεις τα extra cycles της σύγκρισης του ονόματος, η οποία αλλιώς θα τρέξει για όλα τα items.

    [ Ψυχάκιας, ναι, αλλά αν αυτό ήταν LinqToSQL query θα γλύτωνες πολύ χρόνο ]

    Angel
    O:]
  •  17-07-2009, 18:06 52585 σε απάντηση της 52584

    Απ: Χρησιμοποιώντας For Each και παίρνοντας όλα τα αντικείμενα εκτός του πρώτου.

    Από Linq ξέρω ελάχιστα, οπότε ότι μου λέτε καλό είναι. Ε κάποια στιγμή θα τα στρώσω τα οπίσθια για να το μάθω και αυτό. Ευχαριστώωωωωωωωωωωωωωωωωωω
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems